15ea88
@@ -17,14 +17,6 @@
  */
 package org.apache.hadoop.hive.ql.io.orc;
 
-import java.io.DataInput;
-import java.io.DataOutput;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
 import org.apache.hadoop.hive.common.type.HiveDecimal;
 import org.apache.hadoop.hive.serde2.objectinspector.ListObjectInspector;
 import org.apache.hadoop.hive.serde2.objectinspector.MapObjectInspector;
@@ -43,6 +35,14 @@
 import org.apache.hadoop.hive.serde2.typeinfo.UnionTypeInfo;
 import org.apache.hadoop.io.Writable;
 
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 final public class OrcStruct implements Writable {
 
   private Object[] fields;
@@ -346,17 +346,26 @@
public ObjectInspector getMapValueObjectInspector() {
 
     @Override
     public Object getMapValueElement(Object map, Object key) {
+      if (map == null) {
+        return null;
+      }
       return ((Map) map).get(key);
     }
 
     @Override
     @SuppressWarnings("unchecked")
     public Map<Object, Object> getMap(Object map) {
+      if (map == null) {
+        return null;
+      }
       return (Map) map;
     }
 
     @Override
     public int getMapSize(Object map) {
+      if (map == null) {
+        return -1;
+      }
       return ((Map) map).size();
     }
 
@@ -429,17 +438,26 @@
public ObjectInspector getListElementObjectInspector() {
 
     @Override
     public Object getListElement(Object list, int i) {
+      if (list == null) {
+        return null;
+      }
       return ((List) list).get(i);
     }
 
     @Override
     public int getListLength(Object list) {
+      if (list == null) {
+        return -1;
+      }
       return ((List) list).size();
     }
 
     @Override
     @SuppressWarnings("unchecked")
     public List<?> getList(Object list) {
+      if (list == null) {
+        return null;
+      }
       return (List) list;
     }
 
